﻿using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using WatiN.Core;
using SW = FrameworkTest.Helper.SimulatorWeb;


namespace ModuloDeBusqueda.UserCaseTest
{
    /// <summary>
    /// Test del Caso de uso 001 Buscar material Bibliografico
    /// </summary>
    [TestClass]
    public class UC001_BuscarMaterialBibliografico
    {
        /// <summary>
        // Verifica que el sitio web a estado bien instalado sobre IIS
        /// </summary>
        [TestMethod]
        public void UC001_01_VerificaLaExistenciaDelSitioWeb()
        {
            using (IE ie = new IE())
            {
                ie.GoTo("http://localhost/Biblioteca/Login.aspx");
                SW.ValidaPagina(ie, "Login.aspx");
            }
        }

        /// <summary>
        // Verifica que el sitio web a estado bien instalado sobre IIS
        /// </summary>
        [TestMethod]
        public void UC001_02_VerificaLoginUsuario()
        {
            using (IE ie = new IE())
            {
                SW.Login(ie, "gabo", "no_gabo");
                SW.Span(ie, "lblMensaje", "Usuario no registrado!");
                SW.LoginUsuario(ie);
                SW.ValidaPagina(ie, "Busqueda.aspx");
            }
        }

        /// <summary>
        /// Verificacion de la renderizacion correcta de los controles en la pagina de busqueda
        /// </summary>
        [TestMethod]
        public void UC001_03_VerificaControlesInterfaceUsuario()
        {
            using (IE ie = new IE())
            {
                //Login de usuario en el sistema
                SW.LoginUsuario(ie);

                //El sistema muestra la página con los siguientes controles:
                //Caja de selección: para la selección de tipo de material bibliográfico a buscar: 
                //Libros (seleccionado por defecto),Tesis,  Revistas, Multimedia.
                SW.SelectList(ie, "ddlTipoMaterialBibliografico", new List<string> { "Libros", "Revistas", "Tesis", "Multimedia" });

                //Caja de texto: para el ingreso del información,
                SW.TextBox(ie, "txtBusqueda");
                //Botones de selección única: para seleccionar el tipo de búsqueda: por Título (seleccionado por defecto) , Autor, Tema, Editorial
                SW.RadioButton(ie, "rbTipobusqueda");
                SW.RadioButton(ie, "rbTipobusqueda", new List<string> { "Título", "Autor", "Tema" });

                //Verificamos que el Titulo es seleccionado por defecto
                SW.RadioButton(ie, "rbTipobusqueda", "Título");

                //verificamos la existencia del boton
                SW.Button(ie, "Buscar");
            }
        }

        /// <summary>
        /// El usuario realiza la búsqueda de material bibliográfico de 
        /// acuerdo a los filtros seleccionados y la información ingresada
        /// El usuario no ingresa un criterio de busqueda en el cuadro de texto
        /// El sistema envía un mensaje de no tener información en la caja de texto "Ingrese un criterio de busqueda"
        /// </summary>
        [TestMethod]
        public void UC001_05_VisualisacionResultadoBusqueda_SinCriterioDeBusqueda()
        {
            using (var ie = new IE())
            {
                //Login de usuario en el sistema
                SW.LoginUsuario(ie);

                //El usuario presiona el boton de busqueda sin especificar un criterio de busqueda
                SW.Button(ie, "Buscar").Click();

                //El sistema muestra : La cantidad de items encontrados
                SW.ValidaTexto(ie, "Ingrese un criterio de busqueda");
            }
        }
    }
}
